<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // ES5 的语法本身有一些缺陷
        //    预编译？？？
        //    变量的重复声明？？
        //    有一些无效的代码，也不会报错
        //    。。。。


        // ES5 提出了严格模式  'use strict'
        //    如果对只读属性做了修改  会报错
        //    变量如果不声明也会报错
        //    严格模式是有作用域的(函数为界   写在前面)








        // console.log(a);
        // var a = 1;

        // var a = 'hi';
        // // a[0] = 'w';    // 无效
        // console.log(a);


        // 数组和字符串    字符串不能修改
        // 数组和对象       对象具有无序性
        //


        // var arr = ['cc', '男', '18', '打篮球']




        'use strict';   // 全局作用域
        console.log(a);   // 预编译还存在

        var a = 'hi';
        // a[0] = 'w';    // 字符串的下标是只读属性   不能改写

        var a = 1;

        b = 3;    // 变量必须声明

        function f() {
            // 函数作用域
            // 'use strict';
            c = 1;
        }

        f()



    </script>

</body>

</html>